Клиент
Polaris — швейцарский бренд бытовой техники и посуды, продающий товары через маркетплейсы и собственный интернет-магазин.
Задача
На момент начала работ заказчик взаимодействовал со всеми маркетплейсами вручную. Данные о товарах для каждого маркетплейса отличались, менеджерам приходилось тратить много времени на заполнение карточек товаров, беря информацию из разных источников. Перед нами стояла задача настроить централизованную систему для управления данными о товарах и интегрировать её с ERP заказчика и маркетплейсами.
Решение
В качестве системы для управления данными о товарах была предложена Pimcore: она поможет автоматизировать ручной труд менеджеров, обеспечить централизованную проверку данных и автоматическую интеграцию с маркетплейсами.
Для создания новой модели хранения информации принято решение провести анализ структуры хранения данных о разных группах товаров в ERP заказчика, сопоставить эти данные с требованиями маркетплейсов и подразделений компании, участвующих во взаимодействии с ними. Обмен информацией между системами было решено организовать через сервисную шину ESB.
Первый этап: аналитика
В ходе подготовки аналитики мы выявили требования подразделений компании-заказчика, проанализировали бизнес, изучили существующую структуру хранения данных о товарах, различия в составе атрибутов для разных групп продукции и техническую документацию подключаемых маркетплейсов.
Сопоставив полученные данные, мы спроектировали инфомодель и настроили базовые классы в Pimcore.
Второй этап: интеграция Pimcore
В ходе подготовки аналитики мы выявили требования подразделений компании-заказчика, проанализировали бизнес, изучили существующую структуру хранения данных о товарах, различия в составе атрибутов для разных групп продукции и техническую документацию подключаемых маркетплейсов.
Мы сопоставили требования по каждому атрибуту и разработали карточку товара в Pimcore таким образом, чтобы контент-менеджер со стороны заказчика мог заполнять информацию, не думая о рознящихся требованиях подключённых маркетплейсов.
Весь маппинг настроен на уровне справочников Pimcore — в случае изменения требований маркетплейса это позволит внести соответствующие правки в свою систему в качестве её администратора или автоматизировать обновление за счёт реализации дополнительных микросервисов в контуре ESB, не тратя время и деньги на разработку.
Третий этап: интеграция WSO2 ESB
В качестве сервисной шины данных мы предложили использовать WSO2 ESB, брокер сообщений RabbitMQ и систему логирования ELK. В будущем эти инструменты дадут клиенту возможность настраивать интеграции и расширять их без написания кода, используя графический интерфейс задействованного ПО.
Реализация архитектуры проекта
С одной стороны, разработан набор микросервисов, которые узнаю́т о создании или изменении карточек товаров в Pimcore, забирают оттуда данные, предназначенные для отправки на маркетплейсы, добавляют в сообщения информацию о ценах из ERP и отправляют их в RabbitMQ, где для каждого маркетплейса создана отдельная очередь. Использование очередей позволяет избежать перегрузки при массовой отправке сведений о товарах и предотвращает потерю данных в случае временной неработоспособности «получателя».
С другой стороны, реализованы микросервисы для передачи данных на маркетплейсы с последующим мониторингом статуса их обработки и обратной передачи уникальных id маркетплейсов в Pimcore. Логи о работе микросервисов передаются в ELK, где визуализируются в виде диаграмм.